/*
 * 
 This interface allows an object to be frozen.
 *
 * Attempts to alter a frozen object results in throwing of DisallowedOPerationException, a runtime exception
 *
 */

package org.yagnus.interfaces;

/**
 *
 * @author hc.busy
 */
public interface Freezable {

    /**
     * Freeze this object so that no change will happen
     * @return false on error
     */
    public boolean freeze();

    /**
     * unfreeze an object so that the object can be changed again
     * @return false on error.
     */
    public boolean unfreeze();

    /**
     *
     * @return true if the object is frozen and false otherwise.
     */
    public boolean isFrozen();
}
